知识点名称:移动应用常用测试技术
编号: K14-1
前驱知识点编号:K1-1
作者:
讲义内容:
1、移动应用测试技术包括:
- 兼容性测试
- 交互性测试
- 用户体验测试
- 耗电量测试
- 网络流量测试
- 网络连接测试
- 性能测试
- 稳定性测试
2、移动App测试设计
- 测试分析是测试设计的基础: 明确测试范围、列出被测试的界面、功能、场景、业务规则、业务数据;
- 测试设计思路:功能层次图、业务流程图、正面/负面测试、思维导图;
- 设计方法:等价类划分、边界值分析、决策表、基于场景的测试、端到端的测试;
- 覆盖度: 代码、功能、状态、控制流、数据流;
- 用例描述:名称/目的、前提/条件、数据、操作、期望结果;
- 数据驱动的测试用例
3、移动应用Bug的发现和报告
- 测试思维训练:分析性思维、情景性思维、创造性思维(逆向、发散性思维等)
- Bug发现能力的培养:探索式测试、上下文驱动、了解技术、了解开发、观察力、聚焦与发散、。
- 测试用例助一臂之力,也是用例的作用
- Bug的有效性:test oracle,测试依据
- Bug描述:期望vs. 实际结果、屏幕拷贝、trace Log
4、移动应用测试的主要内容
- 功能测试
- 性能测试
- “闪退”测试
- 安全性测试
- 用户体验测试
5、Android App UI自动化测试工具Robotium
Android 平台上类似Selenium 的集成测试工具,能够对各种控件进行操作,模拟各种手势操作、查找和断言机制的API。支持对native和WebView 的操作,能自动的支持多个安卓Activities,有单独的录制回放工具,可以和Maven、Gradle、Ant等工具进行集成。
Robotium可以在Android Studio和Eclipse中使用。
1)Android Studio
下载示例程序:http://dl.bintray.com/robotium/generic/ExampleTestProject_AndroidStudio.zip
在Android Studio欢迎页面,点击 “Open an existing Android Studio project”,打开解压后的示例程序所在文件夹。
在项目视图中,找到app/src/androidTest/java/com.example.android.notepad/路径下的“NotePadTest.java”文件,点击右键并选择“Run NotePadTest”以在模拟器或设备上运行测试用例。
2)Eclipse
下载示例程序:http://dl.bintray.com/robotium/generic/ExampleTestProject_Eclipse_v5.5.1.zip
在Eclipse中,点击File --> Import --> Existing Project into workspace --> Select archive file,选择ExampleTestProject_Eclipse_v5.5.1.zip导入示例项目:
在项目上单击右键然,选择Run As --> Run As Android JUnit Test.,在设备或模拟器上运行测试用例。
测试用例示例:
public class EditorTest extends
ActivityInstrumentationTestCase2<EditorActivity> {
private Solo solo;
public EditorTest() {
super(EditorActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testPreferenceIsSaved() throws Exception {
solo.clickOnText("More");
solo.clickOnText("Preferences");
solo.clickOnText("Edit File Extensions");
Assert.assertTrue(solo.searchText("rtf"));
solo.clickOnText("txt");
solo.clearEditText(2);
solo.enterText(2, "robotium");
solo.clickOnButton("Save");
solo.goBack();
solo.clickOnText("Edit File Extensions");
Assert.assertTrue(solo.searchText("application/robotium"));
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}